This invention relates to a priority information display system that displays information on the priorities of processes effective in debugging, for example, a concurrent program.
In a concurrent-program execution environment, priority is generally set for units of concurrent operations, called tasks, processes, or objects, (hereinafter, referred to as "processes"). Priority is set for each process. Each process operates concurrently with other processes according to the scheduling from the operating system. As a general rule, in a specific operating system where priority is changed dynamically, the higher the priority of a process, the sooner the process will be executed.
In recent years, an operating system with a priority inheritance algorithm that causes a process to inherit the priority of another process has been provided. In priority inheritance by the algorithm, the present priority of the process that is to inherit priority is changed dynamically to the priority of the process from which the priority is inherited.
Explanation will be given, provided that a single process has a "initial basic priority", a "basic priority", and a "present priority". The "initial basis priority" means the value of priority given to a process in the initial stage and remains unchanged, as a general rule. The "basic priority" means the value of priority that changes only due to a specific factor (a specific system call) excluding the priority inheritance, as a general rule. The "present priority" means the value of priority that the operating system uses in scheduling, as a general a rule. The value of the present priority changes, depending on various factors including priority inheritance.
Some dynamic changes of priority are related to inheritance and other dynamic changes of priority are not related to inheritance. In the former case, that is, when dynamic changes of priority are related to inheritance, the factors triggering the change of priority include, for example, the issue of an interprocess synchronizing system call and the occurrence of an event, such as message exchange.
In the latter case, the change of the basic priority is taken as example.
A single process has "process states".
The "process states" mean the states of a process scheduled by the scheduler in the operating system.
Here, they indicate three states distinguished from each other by "Ready," "Wait," and "Run."
In the environment for debugging concurrent programs executed on the operating system using the priority inheritance algorithm, the desired program is debugged by recording the history of events occurred during the execution of the program and observing the behavior of the process.
The known methods of displaying information on priority, such as the current priority or the basic priority, include a method of recording the value of priority after the change at the time of issuing a priority change system call and a method of checking the priorities in unison with a specific timing. With these methods, however, the obtained priorities are only displayed in numerical values, which makes it impossible to display information on priority inheritance effectively.